====== GDL : GNU Data Language ======
>**GDL**, c'est l'équivalent libre sous **GNU/linux** d'**IDL**. J'ai au début suivi des tutoriels pour compiler à la main les paquets et dépendances avant de me rendre compte qu'on pouvait l'installer directement. Il faut juste savoir que **GDL**, ça veut dire **GNU Data Language**, et que par conséquent, rechercher **GDL** dans synaptics ne renvoit pas de résultats alors que le programme s'y trouve.

{{tag>programmation}}


===== Installation =====
Pour installer **GDL** depuis un paquet pre-compile, il vous suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://gnudatalanguage|gnudatalanguage]]**.

À la deuxième fois que j'ai installé **GDL** sous **Ubuntu**, j'ai dû installer un deuxième paquet pour pouvoir afficher les courbes dans la fenêtre. Pour remédier au problème, j'ai installé **[[apt://plplot9-driver-xwin|plplot9-driver-xwin]]**

[[apt://gnudatalanguage,plplot9-driver-xwin|{{ :apt.png |Installer en 1 clic.}}]]

Vous pouvez aussi voir ici: 
[[http://packages.ubuntu.com/fr/hardy/interpreters/gnudatalanguage|les dependnces de GDL]]

===== Compilation =====

La version APT est basée sur la version 0.9pre6 de GDL. Depuis, une 0.9rc1 est sortie, et le CVS est toujours actif ... Très franchement, à partir du moment ou  les librairies (plplot, readline, gsl, ...) sont installées, il faut un très petit effort pour compiler le code source ...

La seule vraie //ruse// concerne plplot, car Debian n'a pas encore la 5.9.0 ou une fonction a change ...

<code>
tar -zxf gdl-0.9rc1.tar.gz
cd gdl-0.9rc1
aclocal
autoconf
automake
./configure --enable-oldplplot
make
</code>

Je considère que //make install// est facultatif: il est tout a fait possible de compiler le projet puis de vivre en local.

Supposons que vous ayez la version 5.9.0 de plplot, compilée à la main, dans une arborescence locale, ainsi qu'une version ad-hoc de la GSL, il suffira de faire:

<code>
tar -zxf gdl-0.9rc1.tar.gz
cd gdl-0.9rc1
aclocal
autoconf
automake
./configure --without-hdf5 --with-Magick=no --without-netcdf --without-hdf \
  --with-plplot=/home/visiteur/GDL/plplot-5.9.0/Compilation/  \
  --with-gsl=/home/visiteur/GDL/gsl-1.11/Compilation/
</code>
J'en ai profite pour montrer comment désactiver certaines options: ceci fait gagner un temps notable à la compilation, surtout si on ne servira jamais de ces librairies !

Si, par hasard la partie graphique ne démarrait pas convenablement, il peut être utile d'ajouter 
<code>
export LD_LIBRARY_PATH=/home/visiteur/GDL/plplot-5.9.0/Compilation/lib/
</code>
(si qlq1 pouvait expliquer, et me dire comment corriger cela dans le code, j'en serais ravi !)

===== Configuration (proposition de nouvelle version) =====

Ensuite, il faut définir les variables d'environnements de GDL. Il y a deux variables GDL_PATH et GDL_STARTUP. Pour des raisons de compatibilité avec le langage IDL, si ces variables ne sont pas fournies, GDL va aussi considérer IDL_PATH et IDL_STARTUP. 

GDL_PATH indique les chemins vers les programmes (fichiers ASCII généralement de suffixe .pro). 
<code>
######### Variables d'environnements pour GDL ############
export GDL_PATH=~/Chemin/Relatif/lib1:+/Chemin/Absolu/routines2:.
</code>
Le petit "+" veut dire qu'on va considerer recursivement tous les sous-repertoires ...

Ces programmes peuvent former de vastes bibliothèques, telles [[http://idlastro.gsfc.nasa.gov/| Astron]] ou SolarSoft, ou de petits outils tres connus [[http://cow.physics.wisc.edu/~craigm/idl/fitting.html|MPFIT]]. Ces programmes, écris en syntaxe IDL, sont plus ou moins bien gérés par GDL. Depuis les versions 0.9pre, la plupart des problèmes ont été règles.

Bien evidemment, aussi bien GDL_PATH que GDL_STARTUP peuvent etre stockees dans un fichier lu au demarage, tel ''~/.bashrc'' sous ''bash''.

S'il est absent, le sous repertoire caché ''~/.gdl'' est automatiquement cree dans les dernieres versions de GDL afin d'y stocker un historique des commandes (par defaut, 20 lignes) dans un fichier ASCII de nom ''history''.

===== Configuration (ancienne version) =====

 J'ai mis du temps à comprendre et trouver comment il fallait faire, ma méthode n'est en aucun cas la meilleure vu qu'apparemment je définis à chaque démarrage d'une console les variables au lieu qu'elles soient créées une bonne fois pour toute, mais ça a le mérite de marcher.

J'ai donc créé un répertoire ''.gdl'' (dossier caché donc, en raison du point, comme tout les dossiers de configuration) dans mon répertoire utilisateur. Dans ce répertoire, j'ai créé un fichier ''startup'' qui me sert à définir les commandes à exécuter au démarrage de GDL. Pour le moment, le fichier est vide, mais quand je saurais quoi mettre dedans, je pourrais le faire facilement (peut-être qu'il faut les droits d'exécutions au fichier).

J'ai créé dans le dossier ''.gdl'' deux sous dossiers, ''lib'' et ''routines'' dans lesquels je stocke les ''*.pro'' que j'ai récupéré ici et là et qui me permettent de compléter mon utilisation de GDL.

Maintenant, pour créer les variables d'environnements, j'ai rajouté les lignes suivantes à mon fichier ''~/.bashrc'' :
<code>
######### Variables d'environnements pour GDL ############
export GDL_PATH=~/.gdl/lib:~/.gdl/routines
export GDL_STARTUP=~/.gdl/startup
</code>



===== Voir aussi =====

  * **(en)** [[http://gnudatalanguage.sourceforge.net|Site officiel]] 
  * **(fr)** [[http://linuxfr.org/2005/10/19/19756.html| une dépêche]] sur [[http://linuxfr.org| LinuxFr.org]] à l'occasion de la version 0.8.11 de GDL
  * **(fr)** [[http://linuxfr.org/2007/07/10/22715.html| une autre dépêche]] sur [[http://linuxfr.org| LinuxFr.org]] a l'occasion de la version 0.9pre5 de GDL
  * **(fr)** [[http://aramis.obspm.fr/~coulais/IDL_et_GDL/memo_GDL0.8.11.html| comment réussir a installer GDL]] sous [[Linux]] ou Mac OS X
  * **(en)** [[http://www.sgeier.net/tools/GDL-intro.pdf| un tutoriel des commandes de base]]
  * **(fr)** [[http://aramis.obspm.fr/~coulais/IDL_et_GDL/Matrice_IDLvsGDL_intrinsic.html| une liste des fonctions intrinseques]] d'IDL disponibles dans GDL. Attention, certains mots-clef peuvent, il peut rester des bugs ...

----
//Contributeurs : [[utilisateurs:Autiwa|Autiwa]].//